{
  "basePath": "/v1",
  "consumes": [
    "application/yaml",
    "application/json"
  ],
  "definitions": {
    "Link": {
      "type": "object",
      "properties": {
        "href": {
          "type": "string",
          "description": "target of the link"
        },
        "rel": {
          "type": "string",
          "description": "relationship if both resources are related, e.g. 'next', 'previous', 'parent', etc."
        },
        "name": {
          "type": "string",
          "description": "human readable name of the resource group"
        },
        "documentationHref": {
          "type": "string",
          "description": "weaviate documentation about this resource group"
        }
      }
    },
    "Principal": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string",
          "description": "The username that was extracted either from the authentication information"
        },
        "groups": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "C11yWordsResponse": {
      "description": "An array of available words and contexts.",
      "properties": {
        "concatenatedWord": {
          "description": "Weighted results for all words",
          "type": "object",
          "properties": {
            "concatenatedWord": {
              "type": "string"
            },
            "singleWords": {
              "type": "array",
              "items": {
                "format": "string"
              }
            },
            "concatenatedVector": {
              "$ref": "#/definitions/C11yVector"
            },
            "concatenatedNearestNeighbors": {
              "$ref": "#/definitions/C11yNearestNeighbors"
            }
          }
        },
        "individualWords": {
          "description": "Weighted results for per individual word",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "word": {
                "type": "string"
              },
              "present": {
                "type": "boolean"
              },
              "info": {
                "type": "object",
                "properties": {
                  "vector": {
                    "$ref": "#/definitions/C11yVector"
                  },
                  "nearestNeighbors": {
                    "$ref": "#/definitions/C11yNearestNeighbors"
                  }
                }
              }
            }
          }
        }
      }
    },
    "C11yExtension": {
      "description": "A resource describing an extension to the contextinoary, containing both the identifier and the definition of the extension",
      "properties": {
        "concept": {
          "description": "The new concept you want to extend. Must be an all-lowercase single word, or a space delimited compound word. Examples: 'foobarium', 'my custom concept'",
          "type": "string",
          "example": "foobarium"
        },
        "definition": {
          "description": "A list of space-delimited words or a sentence describing what the custom concept is about. Avoid using the custom concept itself. An Example definition for the custom concept 'foobarium': would be 'a naturally occurring element which can only be seen by programmers'",
          "type": "string"
        },
        "weight": {
          "description": "Weight of the definition of the new concept where 1='override existing definition entirely' and 0='ignore custom definition'. Note that if the custom concept is not present in the contextionary yet, the weight cannot be less than 1.",
          "type": "number",
          "format": "float"
        }
      }
    },
    "C11yNearestNeighbors": {
      "description": "C11y function to show the nearest neighbors to a word.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "word": {
            "type": "string"
          },
          "distance": {
            "type": "number",
            "format": "float"
          }
        }
      }
    },
    "C11yVector": {
      "description": "A Vector in the Contextionary",
      "type": "array",
      "items": {
        "type": "number",
        "format": "float"
      }
    },
    "Vector": {
      "description": "A Vector object",
      "type": "array",
      "items": {
        "type": "number",
        "format": "float"
      }
    },
    "Vectors": {
      "description": "A Multi Vector map of named vectors",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/Vector"
      }
    },
    "C11yVectorBasedQuestion": {
      "description": "Receive question based on array of classes, properties and values.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "classVectors": {
            "description": "Vectorized classname.",
            "type": "array",
            "items": {
              "type": "number",
              "format": "float"
            },
            "minItems": 300,
            "maxItems": 300
          },
          "classProps": {
            "description": "Vectorized properties.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "propsVectors": {
                  "type": "array",
                  "items": {
                    "type": "number",
                    "format": "float"
                  }
                },
                "value": {
                  "description": "String with valuename.",
                  "type": "string"
                }
              }
            },
            "minItems": 300,
            "maxItems": 300
          }
        }
      }
    },
    "Deprecation": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The id that uniquely identifies this particular deprecations (mostly used internally)"
        },
        "status": {
          "type": "string",
          "description": "Whether the problematic API functionality is deprecated (planned to be removed) or already removed"
        },
        "apiType": {
          "type": "string",
          "description": "Describes which API is effected, usually one of: REST, GraphQL"
        },
        "msg": {
          "type": "string",
          "description": "What this deprecation is about"
        },
        "mitigation": {
          "type": "string",
          "description": "User-required object to not be affected by the (planned) removal"
        },
        "sinceVersion": {
          "type": "string",
          "description": "The deprecation was introduced in this version"
        },
        "plannedRemovalVersion": {
          "type": "string",
          "description": "A best-effort guess of which upcoming version will remove the feature entirely"
        },
        "removedIn": {
          "type": "string",
          "description": "If the feature has already been removed, it was removed in this version",
          "x-nullable": true
        },
        "removedTime": {
          "type": "string",
          "format": "date-time",
          "description": "If the feature has already been removed, it was removed at this timestamp",
          "x-nullable": true
        },
        "sinceTime": {
          "type": "string",
          "format": "date-time",
          "description": "The deprecation was introduced in this version"
        },
        "locations": {
          "type": "array",
          "description": "The locations within the specified API affected by this deprecation",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ErrorResponse": {
      "description": "An error response given by Weaviate end-points.",
      "properties": {
        "error": {
          "items": {
            "properties": {
              "message": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GraphQLError": {
      "description": "An error response caused by a GraphQL query.",
      "properties": {
        "locations": {
          "items": {
            "properties": {
              "column": {
                "format": "int64",
                "type": "integer"
              },
              "line": {
                "format": "int64",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "message": {
          "type": "string"
        },
        "path": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "GraphQLQuery": {
      "description": "GraphQL query based on: http://facebook.github.io/graphql/.",
      "properties": {
        "operationName": {
          "description": "The name of the operation if multiple exist in the query.",
          "type": "string"
        },
        "query": {
          "description": "Query based on GraphQL syntax.",
          "type": "string"
        },
        "variables": {
          "description": "Additional variables for the query.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "GraphQLQueries": {
      "description": "A list of GraphQL queries.",
      "items": {
        "$ref": "#/definitions/GraphQLQuery"
      },
      "type": "array"
    },
    "GraphQLResponse": {
      "description": "GraphQL based response: http://facebook.github.io/graphql/.",
      "properties": {
        "data": {
          "additionalProperties": {
            "$ref": "#/definitions/JsonObject"
          },
          "description": "GraphQL data object.",
          "type": "object"
        },
        "errors": {
          "description": "Array with errors.",
          "items": {
            "$ref": "#/definitions/GraphQLError"
          },
          "x-omitempty": true,
          "type": "array"
        }
      }
    },
    "GraphQLResponses": {
      "description": "A list of GraphQL responses.",
      "items": {
        "$ref": "#/definitions/GraphQLResponse"
      },
      "type": "array"
    },
    "InvertedIndexConfig": {
      "description": "Configure the inverted index built into Weaviate",
      "properties": {
        "cleanupIntervalSeconds": {
          "description": "Asynchronous index clean up happens every n seconds",
          "format": "int",
          "type": "number"
        },
        "bm25": {
          "$ref": "#/definitions/BM25Config"
        },
        "stopwords": {
          "$ref": "#/definitions/StopwordConfig"
        },
        "indexTimestamps": {
          "description": "Index each object by its internal timestamps",
          "type": "boolean"
        },
        "indexNullState": {
          "description": "Index each object with the null state",
          "type": "boolean"
        },
        "indexPropertyLength": {
          "description": "Index length of properties",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "ReplicationConfig": {
      "description": "Configure how replication is executed in a cluster",
      "properties": {
        "factor": {
          "description": "Number of times a class is replicated",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "BM25Config": {
      "description": "tuning parameters for the BM25 algorithm",
      "properties": {
        "k1": {
          "description": "calibrates term-weight scaling based on the term frequency within a document",
          "format": "float",
          "type": "number"
        },
        "b": {
          "description": "calibrates term-weight scaling based on the document length",
          "format": "float",
          "type": "number"
        }
      },
      "type": "object"
    },
    "StopwordConfig": {
      "description": "fine-grained control over stopword list usage",
      "properties": {
        "preset": {
          "description": "pre-existing list of common words by language",
          "type": "string"
        },
        "additions": {
          "description": "stopwords to be considered additionally",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removals": {
          "description": "stopwords to be removed from consideration",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "MultiTenancyConfig": {
      "description": "Configuration related to multi-tenancy within a class",
      "properties": {
        "enabled": {
          "description": "Whether or not multi-tenancy is enabled for this class",
          "type": "boolean",
          "x-omitempty": false
        },
        "autoTenantCreation": {
          "description": "Nonexistent tenants should (not) be created implicitly",
          "type": "boolean",
          "x-omitempty": false
        }
      }
    },
    "JsonObject": {
      "description": "JSON object value.",
      "type": "object"
    },
    "Meta": {
      "description": "Contains meta information of the current Weaviate instance.",
      "properties": {
        "hostname": {
          "description": "The url of the host.",
          "format": "url",
          "type": "string"
        },
        "version": {
          "description": "Version of weaviate you are currently running",
          "type": "string"
        },
        "modules": {
          "description": "Module-specific meta information",
          "type": "object"
        }
      },
      "type": "object"
    },
    "MultipleRef": {
      "description": "Multiple instances of references to other objects.",
      "items": {
        "$ref": "#/definitions/SingleRef"
      },
      "type": "array"
    },
    "PatchDocumentObject": {
      "description": "Either a JSONPatch document as defined by RFC 6902 (from, op, path, value), or a merge document (RFC 7396).",
      "properties": {
        "from": {
          "description": "A string containing a JSON Pointer value.",
          "type": "string"
        },
        "op": {
          "description": "The operation to be performed.",
          "enum": [
            "add",
            "remove",
            "replace",
            "move",
            "copy",
            "test"
          ],
          "type": "string"
        },
        "path": {
          "description": "A JSON-Pointer.",
          "type": "string"
        },
        "value": {
          "description": "The value to be used within the operations.",
          "type": "object"
        },
        "merge": {
          "$ref": "#/definitions/Object"
        }
      },
      "required": [
        "op",
        "path"
      ]
    },
    "PatchDocumentAction": {
      "description": "Either a JSONPatch document as defined by RFC 6902 (from, op, path, value), or a merge document (RFC 7396).",
      "properties": {
        "from": {
          "description": "A string containing a JSON Pointer value.",
          "type": "string"
        },
        "op": {
          "description": "The operation to be performed.",
          "enum": [
            "add",
            "remove",
            "replace",
            "move",
            "copy",
            "test"
          ],
          "type": "string"
        },
        "path": {
          "description": "A JSON-Pointer.",
          "type": "string"
        },
        "value": {
          "description": "The value to be used within the operations.",
          "type": "object"
        },
        "merge": {
          "$ref": "#/definitions/Object"
        }
      },
      "required": [
        "op",
        "path"
      ]
    },
    "PeerUpdate": {
      "description": "A single peer in the network.",
      "properties": {
        "id": {
          "description": "The session ID of the peer.",
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "description": "Human readable name.",
          "type": "string"
        },
        "uri": {
          "description": "The location where the peer is exposed to the internet.",
          "type": "string",
          "format": "uri"
        },
        "schemaHash": {
          "description": "The latest known hash of the peer's schema.",
          "type": "string"
        }
      }
    },
    "PeerUpdateList": {
      "description": "List of known peers.",
      "items": {
        "$ref": "#/definitions/PeerUpdate"
      },
      "type": "array"
    },
    "VectorWeights": {
      "description": "Allow custom overrides of vector weights as math expressions. E.g. \"pancake\": \"7\" will set the weight for the word pancake to 7 in the vectorization, whereas \"w * 3\" would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.",
      "type": "object"
    },
    "PropertySchema": {
      "description": "This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value OR a SingleRef definition.",
      "type": "object"
    },
    "SchemaHistory": {
      "description": "This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value OR a SingleRef definition.",
      "type": "object"
    },
    "Schema": {
      "description": "Definitions of semantic schemas (also see: https://github.com/weaviate/weaviate-semantic-schemas).",
      "properties": {
        "classes": {
          "description": "Semantic classes that are available.",
          "items": {
            "$ref": "#/definitions/Class"
          },
          "type": "array"
        },
        "maintainer": {
          "description": "Email of the maintainer.",
          "format": "email",
          "type": "string"
        },
        "name": {
          "description": "Name of the schema.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SchemaClusterStatus": {
      "description": "Indicates the health of the schema in a cluster.",
      "properties": {
        "healthy": {
          "description": "True if the cluster is in sync, false if there is an issue (see error).",
          "type": "boolean",
          "x-omitempty": false
        },
        "error": {
          "description": "Contains the sync check error if one occurred",
          "type": "string",
          "x-omitempty": true
        },
        "hostname": {
          "description": "Hostname of the coordinating node, i.e. the one that received the cluster. This can be useful information if the error message contains phrases such as 'other nodes agree, but local does not', etc.",
          "type": "string"
        },
        "nodeCount": {
          "description": "Number of nodes that participated in the sync check",
          "type": "number",
          "format": "int"
        },
        "ignoreSchemaSync": {
          "description": "The cluster check at startup can be ignored (to recover from an out-of-sync situation).",
          "type": "boolean",
          "x-omitempty": false
        }
      },
      "type": "object"
    },
    "Class": {
      "properties": {
        "class": {
          "description": "Name of the class as URI relative to the schema URL.",
          "type": "string"
        },
        "vectorConfig": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/VectorConfig"
          }
        },
        "vectorIndexType": {
          "description": "Name of the vector index to use, eg. (HNSW)",
          "type": "string"
        },
        "vectorIndexConfig": {
          "description": "Vector-index config, that is specific to the type of index selected in vectorIndexType",
          "type": "object"
        },
        "shardingConfig": {
          "description": "Manage how the index should be sharded and distributed in the cluster",
          "type": "object"
        },
        "replicationConfig": {
          "$ref": "#/definitions/ReplicationConfig"
        },
        "invertedIndexConfig": {
          "$ref": "#/definitions/InvertedIndexConfig"
        },
        "multiTenancyConfig": {
          "$ref": "#/definitions/MultiTenancyConfig"
        },
        "vectorizer": {
          "description": "Specify how the vectors for this class should be determined. The options are either 'none' - this means you have to import a vector with each object yourself - or the name of a module that provides vectorization capabilities, such as 'text2vec-contextionary'. If left empty, it will use the globally configured default which can itself either be 'none' or a specific module.",
          "type": "string"
        },
        "moduleConfig": {
          "description": "Configuration specific to modules this Weaviate instance has installed",
          "type": "object"
        },
        "description": {
          "description": "Description of the class.",
          "type": "string"
        },
        "properties": {
          "description": "The properties of the class.",
          "items": {
            "$ref": "#/definitions/Property"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Property": {
      "properties": {
        "dataType": {
          "description": "Can be a reference to another type when it starts with a capital (for example Person), otherwise \"string\" or \"int\".",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "Description of the property.",
          "type": "string"
        },
        "moduleConfig": {
          "description": "Configuration specific to modules this Weaviate instance has installed",
          "type": "object"
        },
        "name": {
          "description": "Name of the property as URI relative to the schema URL.",
          "type": "string"
        },
        "indexInverted": {
          "description": "Optional. Should this property be indexed in the inverted index. Defaults to true. If you choose false, you will not be able to use this property in where filters, bm25 or hybrid search. This property has no affect on vectorization decisions done by modules (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)",
          "type": "boolean",
          "x-nullable": true
        },
        "indexFilterable": {
          "description": "Optional. Should this property be indexed in the inverted index. Defaults to true. If you choose false, you will not be able to use this property in where filters. This property has no affect on vectorization decisions done by modules",
          "type": "boolean",
          "x-nullable": true
        },
        "indexSearchable": {
          "description": "Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules",
          "type": "boolean",
          "x-nullable": true
        },
        "tokenization": {
          "description": "Determines tokenization of the property as separate words or whole field. Optional. Applies to text and text[] data types. Allowed values are `word` (default; splits on any non-alphanumerical, lowercases), `lowercase` (splits on white spaces, lowercases), `whitespace` (splits on white spaces), `field` (trims). Not supported for remaining data types",
          "type": "string",
          "enum": [
            "word",
            "lowercase",
            "whitespace",
            "field",
            "trigram",
            "gse"
          ]
        },
        "nestedProperties": {
            "description": "The properties of the nested object(s). Applies to object and object[] data types.",
            "items": {
              "$ref": "#/definitions/NestedProperty"
            },
            "type": "array",
            "x-omitempty": true
          }
      },
      "type": "object"
    },
    "VectorConfig": {
      "properties": {
        "vectorizer": {
          "description": "Configuration of a specific vectorizer used by this vector",
          "type": "object"
        },
        "vectorIndexType": {
          "description": "Name of the vector index to use, eg. (HNSW)",
          "type": "string"
        },
        "vectorIndexConfig": {
          "description": "Vector-index config, that is specific to the type of index selected in vectorIndexType",
          "type": "object"
        }
      },
      "type": "object"
    },
    "NestedProperty": {
      "properties": {
        "dataType": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "indexFilterable": {
          "type": "boolean",
          "x-nullable": true
        },
        "indexSearchable": {
          "type": "boolean",
          "x-nullable": true
        },
        "tokenization": {
          "type": "string",
          "enum": [
            "word",
            "lowercase",
            "whitespace",
            "field"
          ]
        },
        "nestedProperties": {
            "items": {
              "$ref": "#/definitions/NestedProperty"
            },
            "type": "array",
            "x-omitempty": true
          }
      },
      "type": "object"
    },
    "ShardStatusList": {
      "description": "The status of all the shards of a Class",
      "items": {
        "$ref": "#/definitions/ShardStatusGetResponse"
      },
      "type": "array"
    },
    "ShardStatusGetResponse": {
      "description": "Response body of shard status get request",
      "properties": {
        "name": {
          "description": "Name of the shard",
          "type": "string"
        },
        "status": {
          "description": "Status of the shard",
          "type": "string"
        },
        "vectorQueueSize": {
          "description": "Size of the vector queue of the shard",
          "type": "integer",
          "x-omitempty": false
        }
      }
    },
    "ShardStatus": {
      "description": "The status of a single shard",
      "properties": {
        "status": {
          "description": "Status of the shard",
          "type": "string"
        }
      }
    },
    "BackupCreateStatusResponse": {
      "description": "The definition of a backup create metadata",
      "properties": {
        "id": {
          "description": "The ID of the backup. Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed.",
          "type": "string"
        },
        "backend": {
          "description": "Backup backend name e.g. filesystem, gcs, s3.",
          "type": "string"
        },
        "path": {
          "description": "destination path of backup files proper to selected backend",
          "type": "string"
        },
        "error": {
          "description": "error message if creation failed",
          "type": "string"
        },
        "status": {
          "description": "phase of backup creation process",
          "type": "string",
          "default": "STARTED",
          "enum": [
            "STARTED",
            "TRANSFERRING",
            "TRANSFERRED",
            "SUCCESS",
            "FAILED"
          ]
        }
      }
    },
    "BackupRestoreStatusResponse": {
      "description": "The definition of a backup restore metadata",
      "properties": {
        "id": {
          "description": "The ID of the backup. Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed.",
          "type": "string"
        },
        "backend": {
          "description": "Backup backend name e.g. filesystem, gcs, s3.",
          "type": "string"
        },
        "path": {
          "description": "destination path of backup files proper to selected backup backend",
          "type": "string"
        },
        "error": {
          "description": "error message if restoration failed",
          "type": "string"
        },
        "status": {
          "description": "phase of backup restoration process",
          "type": "string",
          "default": "STARTED",
          "enum": [
            "STARTED",
            "TRANSFERRING",
            "TRANSFERRED",
            "SUCCESS",
            "FAILED"
          ]
        }
      }
    },
    "BackupConfig": {
      "description": "Backup custom configuration",
      "type": "object",      
      "properties": {
        "CPUPercentage": {
          "description": "Desired CPU core utilization ranging from 1%-80%",
          "type": "integer",
          "default": 50,
          "minimum": 1,
          "maximum": 80,
          "x-nullable": false
        },
        "ChunkSize": {
          "description": "Weaviate will attempt to come close the specified size, with a minimum of 2MB, default of 128MB, and a maximum of 512MB",
          "type": "integer",
          "default": 128,
          "minimum": 2,
          "maximum": 512,
          "x-nullable": false
        },
        "CompressionLevel": {
          "description": "compression level used by compression algorithm",
          "type": "string",
          "default": "DefaultCompression",
          "x-nullable": false,
          "enum": [
            "DefaultCompression",
            "BestSpeed",
            "BestCompression"
          ]
        }
      }
    },
    "RestoreConfig": {
      "description": "Backup custom configuration",
      "type": "object",      
      "properties": {
        "CPUPercentage": {
          "description": "Desired CPU core utilization ranging from 1%-80%",
          "type": "integer",
          "default": 50,
          "minimum": 1,
          "maximum": 80,
          "x-nullable": false
        }       
      }
    },
    "BackupCreateRequest": {
      "description": "Request body for creating a backup of a set of classes",
      "properties": {
        "id": {
          "description": "The ID of the backup. Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed.",
          "type": "string"
        },
        "config": {
          "description": "Custom configuration for the backup creation process",
          "type": "object",
          "$ref": "#/definitions/BackupConfig"
        },
        "include": {
          "description": "List of classes to include in the backup creation process",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exclude": {
          "description": "List of classes to exclude from the backup creation process",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "BackupCreateResponse": {
      "description": "The definition of a backup create response body",
      "properties": {
        "id": {
          "description": "The ID of the backup. Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed.",
          "type": "string"
        },
        "classes": {
          "description": "The list of classes for which the backup creation process was started",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "backend": {
          "description": "Backup backend name e.g. filesystem, gcs, s3.",
          "type": "string"
        },
        "path": {
          "description": "destination path of backup files proper to selected backend",
          "type": "string"
        },
        "error": {
          "description": "error message if creation failed",
          "type": "string"
        },
        "status": {
          "description": "phase of backup creation process",
          "type": "string",
          "default": "STARTED",
          "enum": [
            "STARTED",
            "TRANSFERRING",
            "TRANSFERRED",
            "SUCCESS",
            "FAILED"
          ]
        }
      }
    },
    "BackupRestoreRequest": {
      "description": "Request body for restoring a backup for a set of classes",
      "properties": {
        "config": {
          "description": "Custom configuration for the backup restoration process",
          "type": "object",
          "$ref": "#/definitions/RestoreConfig"
        },
        "include": {
          "description": "List of classes to include in the backup restoration process",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exclude": {
          "description": "List of classes to exclude from the backup restoration process",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "node_mapping": {
          "description": "Allows overriding the node names stored in the backup with different ones. Useful when restoring backups to a different environment.",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "BackupRestoreResponse": {
      "description": "The definition of a backup restore response body",
      "properties": {
        "id": {
          "description": "The ID of the backup. Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed.",
          "type": "string"
        },
        "classes": {
          "description": "The list of classes for which the backup restoration process was started",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "backend": {
          "description": "Backup backend name e.g. filesystem, gcs, s3.",
          "type": "string"
        },
        "path": {
          "description": "destination path of backup files proper to selected backend",
          "type": "string"
        },
        "error": {
          "description": "error message if restoration failed",
          "type": "string"
        },
        "status": {
          "description": "phase of backup restoration process",
          "type": "string",
          "default": "STARTED",
          "enum": [
            "STARTED",
            "TRANSFERRING",
            "TRANSFERRED",
            "SUCCESS",
            "FAILED"
          ]
        }
      }
    },
    "NodeStats": {
      "description": "The summary of Weaviate's statistics.",
      "properties": {
        "shardCount": {
          "description": "The count of Weaviate's shards.",
          "format": "int",
          "type": "number",
          "x-omitempty": false
        },
        "objectCount": {
          "description": "The total number of objects in DB.",
          "format": "int64",
          "type": "number",
          "x-omitempty": false
        }
      }
    },
    "BatchStats": {
      "description": "The summary of a nodes batch queue congestion status.",
      "properties": {
        "queueLength": {
          "description": "How many objects are currently in the batch queue.",
          "format": "int",
          "type": "number",
          "x-omitempty": true,
          "x-nullable": true
        },
        "ratePerSecond": {
          "description": "How many objects are approximately processed from the batch queue per second.",
          "format": "int",
          "type": "number",
          "x-omitempty": false
        }
      }
    },
    "NodeShardStatus": {
      "description": "The definition of a node shard status response body",
      "properties": {
        "name": {
          "description": "The name of the shard.",
          "type": "string",
          "x-omitempty": false
        },
        "class": {
          "description": "The name of shard's class.",
          "type": "string",
          "x-omitempty": false
        },
        "objectCount": {
          "description": "The number of objects in shard.",
          "format": "int64",
          "type": "number",
          "x-omitempty": false
        },
        "vectorIndexingStatus": {
          "description": "The status of the vector indexing process.",
          "format": "string",
          "x-omitempty": false
        },
        "compressed": {
          "description": "The status of vector compression/quantization.",
          "format": "boolean",
          "x-omitempty": false
        },
        "vectorQueueLength": {
          "description": "The length of the vector indexing queue.",
          "format": "int64",
          "type": "number",
          "x-omitempty": false
        },
        "loaded": {
          "description": "The load status of the shard.",
          "type": "boolean",
          "x-omitempty": false
        }
      }
    },
    "NodeStatus": {
      "description": "The definition of a backup node status response body",
      "properties": {
        "name": {
          "description": "The name of the node.",
          "type": "string"
        },
        "status": {
          "description": "Node's status.",
          "type": "string",
          "default": "HEALTHY",
          "enum": [
            "HEALTHY",
            "UNHEALTHY",
            "UNAVAILABLE",
            "TIMEOUT"
          ]
        },
        "version": {
          "description": "The version of Weaviate.",
          "type": "string"
        },
        "gitHash": {
          "description": "The gitHash of Weaviate.",
          "type": "string"
        },
        "stats": {
          "description": "Weaviate overall statistics.",
          "type": "object",
          "$ref": "#/definitions/NodeStats"
        },
        "batchStats": {
          "description": "Weaviate batch statistics.",
          "type": "object",
          "$ref": "#/definitions/BatchStats"
        },
        "shards": {
          "description": "The list of the shards with it's statistics.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/NodeShardStatus"
          }
        }
      }
    },
    "NodesStatusResponse": {
      "description": "The status of all of the Weaviate nodes",
      "type": "object",
      "properties": {
        "nodes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/NodeStatus"
          }
        }
      }
    },
    "RaftStatistics": {
      "description": "The definition of Raft statistics.",
      "properties": {
        "appliedIndex": {
          "type": "string"
        },
        "commitIndex": {
          "type": "string"
        },
        "fsmPending": {
          "type": "string"
        },
        "lastContact": {
          "type": "string"
        },
        "lastLogIndex": {
          "type": "string"
        },
        "lastLogTerm": {
          "type": "string"
        },
        "lastSnapshotIndex": {
          "type": "string"
        },
        "lastSnapshotTerm": {
          "type": "string"
        },
        "latestConfiguration": {
          "description": "Weaviate Raft nodes.",
          "type": "object"
        },
        "latestConfigurationIndex": {
          "type": "string"
        },
        "numPeers": {
          "type": "string"
        },
        "protocolVersion": {
          "type": "string"
        },
        "protocolVersionMax": {
          "type": "string"
        },
        "protocolVersionMin": {
          "type": "string"
        },
        "snapshotVersionMax": {
          "type": "string"
        },
        "snapshotVersionMin": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "term": {
          "type": "string"
        }
      }
    },
    "Statistics": {
      "description": "The definition of node statistics.",
      "properties": {
        "name": {
          "description": "The name of the node.",
          "type": "string"
        },
        "status": {
          "description": "Node's status.",
          "type": "string",
          "default": "HEALTHY",
          "enum": [
            "HEALTHY",
            "UNHEALTHY",
            "UNAVAILABLE",
            "TIMEOUT"
          ]
        },
        "bootstrapped": {
          "type": "boolean"
        },
        "dbLoaded": {
          "type": "boolean"
        },
        "initialLastAppliedIndex": {
          "type": "number",
          "format": "uint64"
        },
        "lastAppliedIndex": {
          "type": "number"
        },
        "isVoter": {
          "type": "boolean"
        },
        "leaderId": {
          "type": "object"
        },
        "leaderAddress": {
          "type": "object"
        },
        "open": {
          "type": "boolean"
        },
        "ready": {
          "type": "boolean"
        },
        "candidates": {
          "type": "object"
        },
        "raft": {
          "description": "Weaviate Raft statistics.",
          "type": "object",
          "$ref": "#/definitions/RaftStatistics"
        }
      }
    },
    "ClusterStatisticsResponse": {
      "description": "The cluster statistics of all of the Weaviate nodes",
      "type": "object",
      "properties": {
        "statistics": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Statistics"
          }
        },
        "synchronized": {
          "type": "boolean",
          "x-omitempty": false
        }
      }
    },
    "SingleRef": {
      "description": "Either set beacon (direct reference) or set class and schema (concept reference)",
      "properties": {
        "class": {
          "description": "If using a concept reference (rather than a direct reference), specify the desired class name here",
          "format": "uri",
          "type": "string"
        },
        "schema": {
          "description": "If using a concept reference (rather than a direct reference), specify the desired properties here",
          "$ref": "#/definitions/PropertySchema"
        },
        "beacon": {
          "description": "If using a direct reference, specify the URI to point to the cross-ref here. Should be in the form of weaviate://localhost/<uuid> for the example of a local cross-ref to an object",
          "format": "uri",
          "type": "string"
        },
        "href": {
          "description": "If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise.",
          "format": "uri",
          "type": "string"
        },
        "classification": {
          "description": "Additional Meta information about classifications if the item was part of one",
          "$ref": "#/definitions/ReferenceMetaClassification"
        }
      }
    },
    "AdditionalProperties": {
      "description": "Additional Meta information about a single object object.",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "ReferenceMetaClassification": {
      "description": "This meta field contains additional info about the classified reference property",
      "properties": {
        "overallCount": {
          "description": "overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present",
          "type": "number",
          "format": "int64"
        },
        "winningCount": {
          "description": "size of the winning group, a number between 1..k",
          "type": "number",
          "format": "int64"
        },
        "losingCount": {
          "description": "size of the losing group, can be 0 if the winning group size equals k",
          "type": "number",
          "format": "int64"
        },
        "closestOverallDistance": {
          "description": "The lowest distance of any neighbor, regardless of whether they were in the winning or losing group",
          "type": "number",
          "format": "float32"
        },
        "winningDistance": {
          "description": "deprecated - do not use, to be removed in 0.23.0",
          "type": "number",
          "format": "float32"
        },
        "meanWinningDistance": {
          "description": "Mean distance of all neighbors from the winning group",
          "type": "number",
          "format": "float32"
        },
        "closestWinningDistance": {
          "description": "Closest distance of a neighbor from the winning group",
          "type": "number",
          "format": "float32"
        },
        "closestLosingDistance": {
          "description": "The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group",
          "type": "number",
          "format": "float32",
          "x-nullable": true
        },
        "losingDistance": {
          "description": "deprecated - do not use, to be removed in 0.23.0",
          "type": "number",
          "format": "float32",
          "x-nullable": true
        },
        "meanLosingDistance": {
          "description": "Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group.",
          "type": "number",
          "format": "float32",
          "x-nullable": true
        }
      }
    },
    "BatchReference": {
      "properties": {
        "from": {
          "description": "Long-form beacon-style URI to identify the source of the cross-ref including the property name. Should be in the form of weaviate://localhost/<kinds>/<uuid>/<className>/<propertyName>, where <kinds> must be one of 'objects', 'objects' and <className> and <propertyName> must represent the cross-ref property of source class to be used.",
          "format": "uri",
          "type": "string",
          "example": "weaviate://localhost/Zoo/a5d09582-4239-4702-81c9-92a6e0122bb4/hasAnimals"
        },
        "to": {
          "description": "Short-form URI to point to the cross-ref. Should be in the form of weaviate://localhost/<uuid> for the example of a local cross-ref to an object",
          "example": "weaviate://localhost/97525810-a9a5-4eb0-858a-71449aeb007f",
          "format": "uri",
          "type": "string"
        },
        "tenant": {
          "type": "string",
          "description": "Name of the reference tenant."
        }
      }
    },
    "BatchReferenceResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/BatchReference"
        },
        {
          "properties": {
            "result": {
              "description": "Results for this specific reference.",
              "format": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "default": "SUCCESS",
                  "enum": [
                    "SUCCESS",
                    "PENDING",
                    "FAILED"
                  ]
                },
                "errors": {
                  "$ref": "#/definitions/ErrorResponse"
                }
              }
            }
          }
        }
      ],
      "type": "object"
    },
    "GeoCoordinates": {
      "properties": {
        "latitude": {
          "description": "The latitude of the point on earth in decimal form",
          "format": "float",
          "type": "number",
          "x-nullable": true
        },
        "longitude": {
          "description": "The longitude of the point on earth in decimal form",
          "format": "float",
          "type": "number",
          "x-nullable": true
        }
      }
    },
    "PhoneNumber": {
      "properties": {
        "input": {
          "description": "The raw input as the phone number is present in your raw data set. It will be parsed into the standardized formats if valid.",
          "type": "string"
        },
        "internationalFormatted": {
          "description": "Read-only. Parsed result in the international format (e.g. +49 123 ...)",
          "type": "string"
        },
        "defaultCountry": {
          "description": "Optional. The ISO 3166-1 alpha-2 country code. This is used to figure out the correct countryCode and international format if only a national number (e.g. 0123 4567) is provided",
          "type": "string"
        },
        "countryCode": {
          "description": "Read-only. The numerical country code (e.g. 49)",
          "format": "uint64",
          "type": "number"
        },
        "national": {
          "description": "Read-only. The numerical representation of the national part",
          "format": "uint64",
          "type": "number"
        },
        "nationalFormatted": {
          "description": "Read-only. Parsed result in the national format (e.g. 0123 456789)",
          "type": "string"
        },
        "valid": {
          "description": "Read-only. Indicates whether the parsed number is a valid phone number",
          "type": "boolean"
        }
      }
    },
    "Object": {
      "properties": {
        "class": {
          "description": "Class of the Object, defined in the schema.",
          "type": "string"
        },
        "vectorWeights": {
          "$ref": "#/definitions/VectorWeights"
        },
        "properties": {
          "$ref": "#/definitions/PropertySchema"
        },
        "id": {
          "description": "ID of the Object.",
          "format": "uuid",
          "type": "string"
        },
        "creationTimeUnix": {
          "description": "Timestamp of creation of this Object in milliseconds since epoch UTC.",
          "format": "int64",
          "type": "integer"
        },
        "lastUpdateTimeUnix": {
          "description": "Timestamp of the last Object update in milliseconds since epoch UTC.",
          "format": "int64",
          "type": "integer"
        },
        "vector": {
          "description": "This field returns vectors associated with the Object. C11yVector, Vector or Vectors values are possible.",
          "$ref": "#/definitions/C11yVector"
        },
        "vectors": {
          "description": "This field returns vectors associated with the Object.",
          "$ref": "#/definitions/Vectors"
        },
        "tenant": {
          "description": "Name of the Objects tenant.",
          "type": "string"
        },
        "additional": {
          "$ref": "#/definitions/AdditionalProperties"
        }
      },
      "type": "object"
    },
    "ObjectsGetResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/Object"
        },
        {
          "properties": {
            "deprecations": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Deprecation"
              }
            }
          }
        },
        {
          "properties": {
            "result": {
              "description": "Results for this specific Object.",
              "format": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "default": "SUCCESS",
                  "enum": [
                    "SUCCESS",
                    "PENDING",
                    "FAILED"
                  ]
                },
                "errors": {
                  "$ref": "#/definitions/ErrorResponse"
                }
              }
            }
          }
        }
      ],
      "type": "object"
    },
    "BatchDelete": {
      "type": "object",
      "properties": {
        "match": {
          "description": "Outlines how to find the objects to be deleted.",
          "type": "object",
          "properties": {
            "class": {
              "description": "Class (name) which objects will be deleted.",
              "type": "string",
              "example": "City"
            },
            "where": {
              "description": "Filter to limit the objects to be deleted.",
              "type": "object",
              "$ref": "#/definitions/WhereFilter"
            }
          }
        },
        "output": {
          "description": "Controls the verbosity of the output, possible values are: \"minimal\", \"verbose\". Defaults to \"minimal\".",
          "type": "string",
          "default": "minimal"
        },
        "dryRun": {
          "description": "If true, objects will not be deleted yet, but merely listed. Defaults to false.",
          "type": "boolean",
          "default": false
        }
      }
    },
    "BatchDeleteResponse": {
      "description": "Delete Objects response.",
      "type": "object",
      "properties": {
        "match": {
          "description": "Outlines how to find the objects to be deleted.",
          "type": "object",
          "properties": {
            "class": {
              "description": "Class (name) which objects will be deleted.",
              "type": "string",
              "example": "City"
            },
            "where": {
              "description": "Filter to limit the objects to be deleted.",
              "type": "object",
              "$ref": "#/definitions/WhereFilter"
            }
          }
        },
        "output": {
          "description": "Controls the verbosity of the output, possible values are: \"minimal\", \"verbose\". Defaults to \"minimal\".",
          "type": "string",
          "default": "minimal"
        },
        "dryRun": {
          "description": "If true, objects will not be deleted yet, but merely listed. Defaults to false.",
          "type": "boolean",
          "default": false
        },
        "results": {
          "type": "object",
          "properties": {
            "matches": {
              "description": "How many objects were matched by the filter.",
              "type": "number",
              "format": "int64",
              "x-omitempty": false
            },
            "limit": {
              "description": "The most amount of objects that can be deleted in a single query, equals QUERY_MAXIMUM_RESULTS.",
              "type": "number",
              "format": "int64",
              "x-omitempty": false
            },
            "successful": {
              "description": "How many objects were successfully deleted in this round.",
              "type": "number",
              "format": "int64",
              "x-omitempty": false
            },
            "failed": {
              "description": "How many objects should have been deleted but could not be deleted.",
              "type": "number",
              "format": "int64",
              "x-omitempty": false
            },
            "objects": {
              "description": "With output set to \"minimal\" only objects with error occurred will the be described. Successfully deleted objects would be omitted. Output set to \"verbose\" will list all of the objets with their respective statuses.",
              "type": "array",
              "items": {
                "description": "Results for this specific Object.",
                "format": "object",
                "properties": {
                  "id": {
                    "description": "ID of the Object.",
                    "format": "uuid",
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "default": "SUCCESS",
                    "enum": [
                      "SUCCESS",
                      "DRYRUN",
                      "FAILED"
                    ]
                  },
                  "errors": {
                    "$ref": "#/definitions/ErrorResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "ObjectsListResponse": {
      "description": "List of Objects.",
      "properties": {
        "objects": {
          "description": "The actual list of Objects.",
          "items": {
            "$ref": "#/definitions/Object"
          },
          "type": "array"
        },
        "deprecations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Deprecation"
          }
        },
        "totalResults": {
          "description": "The total number of Objects for the query. The number of items in a response may be smaller due to paging.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "Classification": {
      "description": "Manage classifications, trigger them and view status of past classifications.",
      "properties": {
        "id": {
          "description": "ID to uniquely identify this classification run",
          "format": "uuid",
          "type": "string",
          "example": "ee722219-b8ec-4db1-8f8d-5150bb1a9e0c"
        },
        "class": {
          "description": "class (name) which is used in this classification",
          "type": "string",
          "example": "City"
        },
        "classifyProperties": {
          "description": "which ref-property to set as part of the classification",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "inCountry"
          ]
        },
        "basedOnProperties": {
          "description": "base the text-based classification on these fields (of type text)",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "description"
          ]
        },
        "status": {
          "description": "status of this classification",
          "type": "string",
          "enum": [
            "running",
            "completed",
            "failed"
          ],
          "example": "running"
        },
        "meta": {
          "description": "additional meta information about the classification",
          "type": "object",
          "$ref": "#/definitions/ClassificationMeta"
        },
        "type": {
          "description": "which algorithm to use for classifications",
          "type": "string"
        },
        "settings": {
          "description": "classification-type specific settings",
          "type": "object"
        },
        "error": {
          "description": "error message if status == failed",
          "type": "string",
          "default": "",
          "example": "classify xzy: something went wrong"
        },
        "filters": {
          "type": "object",
          "properties": {
            "sourceWhere": {
              "description": "limit the objects to be classified",
              "type": "object",
              "$ref": "#/definitions/WhereFilter"
            },
            "trainingSetWhere": {
              "description": "Limit the training objects to be considered during the classification. Can only be used on types with explicit training sets, such as 'knn'",
              "type": "object",
              "$ref": "#/definitions/WhereFilter"
            },
            "targetWhere": {
              "description": "Limit the possible sources when using an algorithm which doesn't really on training data, e.g. 'contextual'. When using an algorithm with a training set, such as 'knn', limit the training set instead",
              "type": "object",
              "$ref": "#/definitions/WhereFilter"
            }
          }
        }
      },
      "type": "object"
    },
    "ClassificationMeta": {
      "description": "Additional information to a specific classification",
      "properties": {
        "started": {
          "description": "time when this classification was started",
          "type": "string",
          "format": "date-time",
          "example": "2017-07-21T17:32:28Z"
        },
        "completed": {
          "description": "time when this classification finished",
          "type": "string",
          "format": "date-time",
          "example": "2017-07-21T17:32:28Z"
        },
        "count": {
          "description": "number of objects which were taken into consideration for classification",
          "type": "integer",
          "example": 147
        },
        "countSucceeded": {
          "description": "number of objects successfully classified",
          "type": "integer",
          "example": 140
        },
        "countFailed": {
          "description": "number of objects which could not be classified - see error message for details",
          "type": "integer",
          "example": 7
        }
      },
      "type": "object"
    },
    "WhereFilter": {
      "description": "Filter search results using a where filter",
      "properties": {
        "operands": {
          "description": "combine multiple where filters, requires 'And' or 'Or' operator",
          "type": "array",
          "items": {
            "$ref": "#/definitions/WhereFilter"
          }
        },
        "operator": {
          "description": "operator to use",
          "type": "string",
          "enum": [
            "And",
            "Or",
            "Equal",
            "Like",
            "NotEqual",
            "GreaterThan",
            "GreaterThanEqual",
            "LessThan",
            "LessThanEqual",
            "WithinGeoRange",
            "IsNull",
            "ContainsAny",
            "ContainsAll"
          ],
          "example": "GreaterThanEqual"
        },
        "path": {
          "description": "path to the property currently being filtered",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "inCity",
            "City",
            "name"
          ]
        },
        "valueInt": {
          "description": "value as integer",
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "x-nullable": true
        },
        "valueNumber": {
          "description": "value as number/float",
          "type": "number",
          "format": "float64",
          "example": 3.14,
          "x-nullable": true
        },
        "valueBoolean": {
          "description": "value as boolean",
          "type": "boolean",
          "example": false,
          "x-nullable": true
        },
        "valueString": {
          "description": "value as text (deprecated as of v1.19; alias for valueText)",
          "type": "string",
          "example": "my search term",
          "x-nullable": true
        },
        "valueText": {
          "description": "value as text",
          "type": "string",
          "example": "my search term",
          "x-nullable": true
        },
        "valueDate": {
          "description": "value as date (as string)",
          "type": "string",
          "example": "TODO",
          "x-nullable": true
        },
        "valueIntArray": {
          "description": "value as integer",
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64"
          },
          "example": "[100, 200]",
          "x-nullable": true,
          "x-omitempty": true
        },
        "valueNumberArray": {
          "description": "value as number/float",
          "type": "array",
          "items": {
            "type": "number",
            "format": "float64"
          },
          "example": [
            3.14
          ],
          "x-nullable": true,
          "x-omitempty": true
        },
        "valueBooleanArray": {
          "description": "value as boolean",
          "type": "array",
          "items": {
            "type": "boolean"
          },
          "example": [
            true,
            false
          ],
          "x-nullable": true,
          "x-omitempty": true
        },
        "valueStringArray": {
          "description": "value as text (deprecated as of v1.19; alias for valueText)",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "my search term"
          ],
          "x-nullable": true,
          "x-omitempty": true
        },
        "valueTextArray": {
          "description": "value as text",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "my search term"
          ],
          "x-nullable": true,
          "x-omitempty": true
        },
        "valueDateArray": {
          "description": "value as date (as string)",
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": "TODO",
          "x-nullable": true,
          "x-omitempty": true
        },
        "valueGeoRange": {
          "description": "value as geo coordinates and distance",
          "type": "object",
          "$ref": "#/definitions/WhereFilterGeoRange",
          "x-nullable": true
        }
      },
      "type": "object"
    },
    "WhereFilterGeoRange": {
      "type": "object",
      "description": "filter within a distance of a georange",
      "properties": {
        "geoCoordinates": {
          "$ref": "#/definitions/GeoCoordinates",
          "x-nullable": false
        },
        "distance": {
          "type": "object",
          "properties": {
            "max": {
              "type": "number",
              "format": "float64"
            }
          }
        }
      }
    },
    "Tenant": {
      "type": "object",
      "description": "attributes representing a single tenant within weaviate",
      "properties": {
        "name": {
          "description": "name of the tenant",
          "type": "string"
        },
        "activityStatus": {
          "description": "activity status of the tenant's shard. Optional for creating tenant (implicit `HOT`) and required for updating tenant. Allowed values are `HOT` - tenant is fully active, `WARM` - tenant is active, some restrictions are imposed (TBD; not supported yet), `COLD` - tenant is inactive; no actions can be performed on tenant, tenant's files are stored locally, `FROZEN` - as COLD, but files are stored on cloud storage (not supported yet)",
          "type": "string",
          "enum": [
            "HOT",
            "WARM",
            "COLD",
            "FROZEN"
          ]
        }
      }
    }
  },
  "externalDocs": {
    "url": "https://github.com/weaviate/weaviate"
  },
  "info": {
    "contact": {
      "email": "hello@weaviate.io",
      "name": "Weaviate",
      "url": "https://github.com/weaviate"
    },
    "description": "Cloud-native, modular vector database",
    "title": "Weaviate",
    "version": "1.25.0-raft"
  },
  "parameters": {
    "CommonAfterParameterQuery": {
      "description": "The starting ID of the result window.",
      "in": "query",
      "name": "after",
      "required": false,
      "type": "string"
    },
    "CommonOffsetParameterQuery": {
      "description": "The starting index of the result window. Default value is 0.",
      "format": "int64",
      "in": "query",
      "name": "offset",
      "required": false,
      "type": "integer",
      "default": 0
    },
    "CommonLimitParameterQuery": {
      "description": "The maximum number of items to be returned per page. Default value is set in Weaviate config.",
      "format": "int64",
      "in": "query",
      "name": "limit",
      "required": false,
      "type": "integer"
    },
    "CommonIncludeParameterQuery": {
      "description": "Include additional information, such as classification infos. Allowed values include: classification, vector, interpretation",
      "in": "query",
      "name": "include",
      "required": false,
      "type": "string"
    },
    "CommonConsistencyLevelParameterQuery": {
      "description": "Determines how many replicas must acknowledge a request before it is considered successful",
      "in": "query",
      "name": "consistency_level",
      "required": false,
      "type": "string"
    },
    "CommonTenantParameterQuery": {
      "description": "Specifies the tenant in a request targeting a multi-tenant class",
      "in": "query",
      "name": "tenant",
      "required": false,
      "type": "string"
    },
    "CommonNodeNameParameterQuery": {
      "description": "The target node which should fulfill the request",
      "in": "query",
      "name": "node_name",
      "required": false,
      "type": "string"
    },
    "CommonSortParameterQuery": {
      "description": "Sort parameter to pass an information about the names of the sort fields",
      "in": "query",
      "name": "sort",
      "required": false,
      "type": "string"
    },
    "CommonOrderParameterQuery": {
      "description": "Order parameter to tell how to order (asc or desc) data within given field",
      "in": "query",
      "name": "order",
      "required": false,
      "type": "string"
    },
    "CommonClassParameterQuery": {
      "description": "Class parameter specifies the class from which to query objects",
      "in": "query",
      "name": "class",
      "required": false,
      "type": "string"
    },
    "CommonOutputVerbosityParameterQuery": {
      "description": "Controls the verbosity of the output, possible values are: \"minimal\", \"verbose\". Defaults to \"minimal\".",
      "in": "query",
      "name": "output",
      "required": false,
      "type": "string",
      "default": "minimal"
    }
  },
  "paths": {
    "/": {
      "get": {
        "description": "Home. Discover the REST API",
        "operationId": "weaviate.root",
        "responses": {
          "200": {
            "description": "Weaviate is alive and ready to serve content",
            "schema": {
              "type": "object",
              "properties": {
                "links": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Link"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/live": {
      "get": {
        "description": "Determines whether the application is alive. Can be used for kubernetes liveness probe",
        "operationId": "weaviate.wellknown.liveness",
        "responses": {
          "200": {
            "description": "The application is able to respond to HTTP requests"
          }
        }
      }
    },
    "/.well-known/ready": {
      "get": {
        "description": "Determines whether the application is ready to receive traffic. Can be used for kubernetes readiness probe.",
        "operationId": "weaviate.wellknown.readiness",
        "responses": {
          "200": {
            "description": "The application has completed its start-up routine and is ready to accept traffic."
          },
          "503": {
            "description": "The application is currently not able to serve traffic. If other horizontal replicas of weaviate are available and they are capable of receiving traffic, all traffic should be redirected there instead."
          }
        }
      }
    },
    "/.well-known/openid-configuration": {
      "get": {
        "description": "OIDC Discovery page, redirects to the token issuer if one is configured",
        "responses": {
          "200": {
            "description": "Successful response, inspect body",
            "schema": {
              "type": "object",
              "properties": {
                "href": {
                  "description": "The Location to redirect to",
                  "type": "string"
                },
                "clientId": {
                  "description": "OAuth Client ID",
                  "type": "string"
                },
                "scopes": {
                  "description": "OAuth Scopes",
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "x-omitempty": true
                }
              }
            }
          },
          "404": {
            "description": "Not found, no oidc provider present"
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "OIDC discovery information if OIDC auth is enabled",
        "tags": [
          "well-known",
          "oidc",
          "discovery"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      }
    },
    "/objects": {
      "get": {
        "description": "Lists all Objects in reverse order of creation, owned by the user that belongs to the used token.",
        "operationId": "objects.list",
        "x-serviceIds": [
          "weaviate.local.query"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/CommonAfterParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonOffsetParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonLimitParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonIncludeParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonSortParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonOrderParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonClassParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "schema": {
              "$ref": "#/definitions/ObjectsListResponse"
            }
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found."
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Get a list of Objects.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      },
      "post": {
        "description": "Registers a new Object. Provided meta-data and schema values are validated.",
        "operationId": "objects.create",
        "x-serviceIds": [
          "weaviate.local.add"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Object created.",
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Create Objects between two Objects (object and subject).",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      }
    },
    "/objects/{id}": {
      "delete": {
        "description": "Deletes an Object from the system.",
        "operationId": "objects.delete",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted."
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found."
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Delete an Object based on its UUID.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": true,
        "x-available-in-websocket": true,
        "deprecated": true
      },
      "get": {
        "description": "Lists Objects.",
        "operationId": "objects.get",
        "x-serviceIds": [
          "weaviate.local.query"
        ],
        "parameters": [
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/CommonIncludeParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found."
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Get a specific Object based on its UUID and a Object UUID. Also available as Websocket bus.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false,
        "deprecated": true
      },
      "patch": {
        "description": "Updates an Object. This method supports json-merge style patch semantics (RFC 7396). Provided meta-data and schema values are validated. LastUpdateTime is set to the time this function is called.",
        "operationId": "objects.patch",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "RFC 7396-style patch, the body contains the object to merge into the existing object.",
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully applied. No content provided."
          },
          "400": {
            "description": "The patch-JSON is malformed."
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found."
          },
          "422": {
            "description": "The patch-JSON is valid but unprocessable.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Update an Object based on its UUID (using patch semantics).",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false,
        "deprecated": true
      },
      "put": {
        "description": "Updates an Object's data. Given meta-data and schema values are validated. LastUpdateTime is set to the time this function is called.",
        "operationId": "objects.update",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully received.",
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found."
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Update an Object based on its UUID.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false,
        "deprecated": true
      },
      "head": {
        "description": "Checks if an Object exists in the system.",
        "operationId": "objects.head",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Object exists."
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Object doesn't exist."
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Checks Object's existence based on its UUID.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": true,
        "x-available-in-websocket": true,
        "deprecated": true
      }
    },
    "/objects/{className}/{id}": {
      "get": {
        "description": "Get a single data object",
        "operationId": "objects.class.get",
        "x-serviceIds": [
          "weaviate.local.query"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/CommonIncludeParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonNodeNameParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found."
          },
          "422": {
            "description": "Request is well-formed (i.e., syntactically correct), but erroneous.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Get a specific Object based on its class and UUID. Also available as Websocket bus.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      },
      "delete": {
        "description": "Delete a single data object.",
        "operationId": "objects.class.delete",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted."
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found."
          },
          "422": {
            "description": "Request is well-formed (i.e., syntactically correct), but erroneous.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Delete object based on its class and UUID.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": true,
        "x-available-in-websocket": true
      },
      "put": {
        "description": "Update an individual data object based on its class and uuid.",
        "operationId": "objects.class.put",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "description": "The uuid of the data object to update.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully received.",
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found."
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Update a class object based on its uuid",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      },
      "patch": {
        "description": "Update an individual data object based on its class and uuid. This method supports json-merge style patch semantics (RFC 7396). Provided meta-data and schema values are validated. LastUpdateTime is set to the time this function is called.",
        "operationId": "objects.class.patch",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "The class name as defined in the schema",
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "description": "The uuid of the data object to update.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "RFC 7396-style patch, the body contains the object to merge into the existing object.",
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/Object"
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully applied. No content provided."
          },
          "400": {
            "description": "The patch-JSON is malformed.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found."
          },
          "422": {
            "description": "The patch-JSON is valid but unprocessable.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Update an Object based on its UUID (using patch semantics).",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      },
      "head": {
        "description": "Checks if a data object exists without retrieving it.",
        "operationId": "objects.class.head",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "The class name as defined in the schema",
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "description": "The uuid of the data object",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "204": {
            "description": "Object exists."
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Object doesn't exist."
          },
          "422": {
            "description": "Request is well-formed (i.e., syntactically correct), but erroneous.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Checks object's existence based on its class and uuid.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": true,
        "x-available-in-websocket": true
      }
    },
    "/objects/{id}/references/{propertyName}": {
      "post": {
        "description": "Add a single reference to a class-property.",
        "operationId": "objects.references.create",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique name of the property related to the Object.",
            "in": "path",
            "name": "propertyName",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SingleRef"
            }
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully added the reference."
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the property exists or that it is a class?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Add a single reference to a class-property.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false,
        "deprecated": true
      },
      "put": {
        "description": "Replace all references to a class-property.",
        "operationId": "objects.references.update",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique name of the property related to the Object.",
            "in": "path",
            "name": "propertyName",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MultipleRef"
            }
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully replaced all the references."
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the property exists or that it is a class?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Replace all references to a class-property.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false,
        "deprecated": true
      },
      "delete": {
        "description": "Delete the single reference that is given in the body from the list of references that this property has.",
        "operationId": "objects.references.delete",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique name of the property related to the Object.",
            "in": "path",
            "name": "propertyName",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SingleRef"
            }
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted."
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Delete the single reference that is given in the body from the list of references that this property has.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false,
        "deprecated": true
      }
    },
    "/objects/{className}/{id}/references/{propertyName}": {
      "post": {
        "description": "Add a single reference to a class-property.",
        "operationId": "objects.class.references.create",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "The class name as defined in the schema",
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique name of the property related to the Object.",
            "in": "path",
            "name": "propertyName",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SingleRef"
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully added the reference."
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Source object doesn't exist."
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the property exists or that it is a class?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Add a single reference to a class-property.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      },
      "put": {
        "description": "Update all references of a property of a data object.",
        "operationId": "objects.class.references.put",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "The class name as defined in the schema",
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique name of the property related to the Object.",
            "in": "path",
            "name": "propertyName",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MultipleRef"
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully replaced all the references."
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Source object doesn't exist."
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the property exists or that it is a class?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Replace all references to a class-property.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      },
      "delete": {
        "description": "Delete the single reference that is given in the body from the list of references that this property of a data object has",
        "operationId": "objects.class.references.delete",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "description": "The class name as defined in the schema",
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique ID of the Object.",
            "format": "uuid",
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Unique name of the property related to the Object.",
            "in": "path",
            "name": "propertyName",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SingleRef"
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "204": {
            "description": "Successfully deleted."
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Successful query result but no resource was found.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the property exists or that it is a class?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Delete the single reference that is given in the body from the list of references that this property has.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      }
    },
    "/objects/validate": {
      "post": {
        "description": "Validate an Object's schema and meta-data. It has to be based on a schema, which is related to the given Object to be accepted by this validation.",
        "operationId": "objects.validate",
        "x-serviceIds": [
          "weaviate.local.query.meta"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Object"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully validated."
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Validate an Object based on a schema.",
        "tags": [
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      }
    },
    "/batch/objects": {
      "post": {
        "description": "Register new Objects in bulk. Provided meta-data and schema values are validated.",
        "operationId": "batch.objects.create",
        "x-serviceIds": [
          "weaviate.local.add"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "fields": {
                  "description": "Define which fields need to be returned. Default value is ALL",
                  "type": "array",
                  "items": {
                    "type": "string",
                    "default": "ALL",
                    "enum": [
                      "ALL",
                      "class",
                      "schema",
                      "id",
                      "creationTimeUnix"
                    ]
                  }
                },
                "objects": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Object"
                  }
                }
              }
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Request succeeded, see response body to get detailed information about each batched item.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ObjectsGetResponse"
              }
            }
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Creates new Objects based on a Object template as a batch.",
        "tags": [
          "batch",
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      },
      "delete": {
        "description": "Delete Objects in bulk that match a certain filter.",
        "operationId": "batch.objects.delete",
        "x-serviceIds": [
          "weaviate.local.manipulate"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BatchDelete"
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          },
          {
            "$ref": "#/parameters/CommonTenantParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Request succeeded, see response body to get detailed information about each batched item.",
            "schema": {
              "$ref": "#/definitions/BatchDeleteResponse"
            }
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Deletes Objects based on a match filter as a batch.",
        "tags": [
          "batch",
          "objects"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      }
    },
    "/batch/references": {
      "post": {
        "description": "Register cross-references between any class items (objects or objects) in bulk.",
        "operationId": "batch.references.create",
        "x-serviceIds": [
          "weaviate.local.add"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "A list of references to be batched. The ideal size depends on the used database connector. Please see the documentation of the used connector for help",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BatchReference"
              }
            }
          },
          {
            "$ref": "#/parameters/CommonConsistencyLevelParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Request Successful. Warning: A successful request does not guarantee that every batched reference was successfully created. Inspect the response body to see which references succeeded and which failed.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BatchReferenceResponse"
              }
            }
          },
          "400": {
            "description": "Malformed request.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Creates new Cross-References between arbitrary classes in bulk.",
        "tags": [
          "batch",
          "references"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      }
    },
    "/graphql": {
      "post": {
        "description": "Get an object based on GraphQL",
        "operationId": "graphql.post",
        "x-serviceIds": [
          "weaviate.local.query",
          "weaviate.local.query.meta",
          "weaviate.network.query",
          "weaviate.network.query.meta"
        ],
        "parameters": [
          {
            "description": "The GraphQL query request parameters.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GraphQLQuery"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful query (with select).",
            "schema": {
              "$ref": "#/definitions/GraphQLResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Get a response based on GraphQL",
        "tags": [
          "graphql"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      }
    },
    "/graphql/batch": {
      "post": {
        "description": "Perform a batched GraphQL query",
        "operationId": "graphql.batch",
        "x-serviceIds": [
          "weaviate.local.query",
          "weaviate.local.query.meta",
          "weaviate.network.query",
          "weaviate.network.query.meta"
        ],
        "parameters": [
          {
            "description": "The GraphQL queries.",
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GraphQLQueries"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful query (with select).",
            "schema": {
              "$ref": "#/definitions/GraphQLResponses"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Request body is well-formed (i.e., syntactically correct), but semantically erroneous. Are you sure the class is defined in the configuration file?",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Get a response based on GraphQL.",
        "tags": [
          "graphql"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      }
    },
    "/meta": {
      "get": {
        "description": "Gives meta information about the server and can be used to provide information to another Weaviate instance that wants to interact with the current instance.",
        "operationId": "meta.get",
        "x-serviceIds": [
          "weaviate.local.query.meta"
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "schema": {
              "$ref": "#/definitions/Meta"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Returns meta information of the current Weaviate instance.",
        "tags": [
          "meta"
        ],
        "x-available-in-mqtt": false,
        "x-available-in-websocket": false
      }
    },
    "/schema/cluster-status": {
      "get": {
        "operationId": "schema.cluster.status",
        "tags": [
          "schema"
        ],
        "responses": {
          "200": {
            "description": "The schema in the cluster is in sync.",
            "schema": {
              "$ref": "#/definitions/SchemaClusterStatus"
            }
          },
          "500": {
            "description": "The schema is either out of sync (see response body) or the sync check could not be completed.",
            "schema": {
              "$ref": "#/definitions/SchemaClusterStatus"
            }
          }
        }
      }
    },
    "/schema": {
      "get": {
        "summary": "Dump the current the database schema.",
        "operationId": "schema.dump",
        "x-serviceIds": [
          "weaviate.local.query.meta"
        ],
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "consistency",
            "in": "header",
            "required": false,
            "default": true,
            "type": "boolean",
            "description": "If consistency is true, the request will be proxied to the leader to ensure strong schema consistency"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully dumped the database schema.",
            "schema": {
              "$ref": "#/definitions/Schema"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "post": {
        "summary": "Create a new Object class in the schema.",
        "operationId": "schema.objects.create",
        "x-serviceIds": [
          "weaviate.local.add.meta"
        ],
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "objectClass",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Class"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Added the new Object class to the schema.",
            "schema": {
              "$ref": "#/definitions/Class"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid Object class",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/schema/{className}": {
      "get": {
        "summary": "Get a single class from the schema",
        "operationId": "schema.objects.get",
        "x-serviceIds": [
          "weaviate.local.get.meta"
        ],
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "consistency",
            "in": "header",
            "required": false,
            "default": true,
            "type": "boolean",
            "description": "If consistency is true, the request will be proxied to the leader to ensure strong schema consistency"
           }
        ],
        "responses": {
          "200": {
            "description": "Found the Class, returned as body",
            "schema": {
              "$ref": "#/definitions/Class"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "This class does not exist"
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "delete": {
        "summary": "Remove an Object class (and all data in the instances) from the schema.",
        "operationId": "schema.objects.delete",
        "x-serviceIds": [
          "weaviate.local.manipulate.meta"
        ],
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Removed the Object class from the schema."
          },
          "400": {
            "description": "Could not delete the Object class.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "put": {
        "summary": "Update settings of an existing schema class",
        "description": "Use this endpoint to alter an existing class in the schema. Note that not all settings are mutable. If an error about immutable fields is returned and you still need to update this particular setting, you will have to delete the class (and the underlying data) and recreate. This endpoint cannot be used to modify properties. Instead use POST /v1/schema/{className}/properties. A typical use case for this endpoint is to update configuration, such as the vectorIndexConfig. Note that even in mutable sections, such as vectorIndexConfig, some fields may be immutable.",
        "operationId": "schema.objects.update",
        "x-serviceIds": [
          "weaviate.local.manipulate.meta"
        ],
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "objectClass",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Class"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Class was updated successfully",
            "schema": {
              "$ref": "#/definitions/Class"
            }
          },
          "422": {
            "description": "Invalid update attempt",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Class to be updated does not exist",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/schema/{className}/properties": {
      "post": {
        "summary": "Add a property to an Object class.",
        "operationId": "schema.objects.properties.add",
        "x-serviceIds": [
          "weaviate.local.manipulate.meta"
        ],
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Property"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Added the property.",
            "schema": {
              "$ref": "#/definitions/Property"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid property.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/schema/{className}/shards": {
      "get": {
        "summary": "Get the shards status of an Object class",
        "operationId": "schema.objects.shards.get",
        "x-serviceIds": [
          "weaviate.local.get.meta"
        ],
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "tenant",
            "in": "query",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Found the status of the shards, returned as body",
            "schema": {
              "$ref": "#/definitions/ShardStatusList"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "This class does not exist",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/schema/{className}/shards/{shardName}": {
      "put": {
        "description": "Update shard status of an Object Class",
        "operationId": "schema.objects.shards.update",
        "x-serviceIds": [
          "weaviate.local.manipulate.meta"
        ],
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "shardName",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ShardStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Shard status was updated successfully",
            "schema": {
              "$ref": "#/definitions/ShardStatus"
            }
          },
          "422": {
            "description": "Invalid update attempt",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Shard to be updated does not exist",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/schema/{className}/tenants": {
      "post": {
        "description": "Create a new tenant for a specific class",
        "operationId": "tenants.create",
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Tenant"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Added new tenants to the specified class",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Tenant"
              }
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid Tenant class",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "put": {
        "description": "Update tenant of a specific class",
        "operationId": "tenants.update",
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Tenant"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Updated tenants of the specified class",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Tenant"
              }
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid Tenant class",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "delete": {
        "description": "delete tenants from a specific class",
        "operationId": "tenants.delete",
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "tenants",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Deleted tenants from specified class."
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid Tenant class",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "get": {
        "description": "get all tenants from a specific class",
        "operationId": "tenants.get",
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "consistency",
            "in": "header",
            "required": false,
            "default": true,
            "type": "boolean",
            "description": "If consistency is true, the request will be proxied to the leader to ensure strong schema consistency"
          }
        ],
        "responses": {
          "200": {
            "description": "tenants from specified class.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Tenant"
              }
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid Tenant class",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/schema/{className}/tenants/{tenantName}": {
      "head": {
        "description": "Check if a tenant exists for a specific class",
        "operationId": "tenant.exists",
        "tags": [
          "schema"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "tenantName",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "consistency",
            "in": "header",
            "required": false,
            "default": true,
            "type": "boolean",
            "description": "If consistency is true, the request will be proxied to the leader to ensure strong schema consistency"
          }
        ],
        "responses": {
          "200": {
            "description": "The tenant exists in the specified class"
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "The tenant not found"
          },
          "422": {
            "description": "Invalid Tenant class",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },    
    "/backups/{backend}": {
      "post": {
        "description": "Starts a process of creating a backup for a set of classes",
        "operationId": "backups.create",
        "x-serviceIds": [
          "weaviate.local.backup"
        ],
        "tags": [
          "backups"
        ],
        "parameters": [
          {
            "name": "backend",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Backup backend name e.g. filesystem, gcs, s3."
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BackupCreateRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Backup create process successfully started.",
            "schema": {
              "$ref": "#/definitions/BackupCreateResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid backup creation attempt.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/backups/{backend}/{id}": {
      "get": {
        "description": "Returns status of backup creation attempt for a set of classes",
        "operationId": "backups.create.status",
        "x-serviceIds": [
          "weaviate.local.backup"
        ],
        "tags": [
          "backups"
        ],
        "parameters": [
          {
            "name": "backend",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Backup backend name e.g. filesystem, gcs, s3."
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The ID of a backup. Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed."
          }
        ],
        "responses": {
          "200": {
            "description": "Backup creation status successfully returned",
            "schema": {
              "$ref": "#/definitions/BackupCreateStatusResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Not Found - Backup does not exist",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid backup restoration status attempt.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/backups/{backend}/{id}/restore": {
      "post": {
        "description": "Starts a process of restoring a backup for a set of classes",
        "operationId": "backups.restore",
        "x-serviceIds": [
          "weaviate.local.backup"
        ],
        "tags": [
          "backups"
        ],
        "parameters": [
          {
            "name": "backend",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Backup backend name e.g. filesystem, gcs, s3."
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The ID of a backup. Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed."
          },
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BackupRestoreRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Backup restoration process successfully started.",
            "schema": {
              "$ref": "#/definitions/BackupRestoreResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Not Found - Backup does not exist",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid backup restoration attempt.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      },
      "get": {
        "description": "Returns status of a backup restoration attempt for a set of classes",
        "operationId": "backups.restore.status",
        "x-serviceIds": [
          "weaviate.local.backup"
        ],
        "tags": [
          "backups"
        ],
        "parameters": [
          {
            "name": "backend",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Backup backend name e.g. filesystem, gcs, s3."
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The ID of a backup. Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed."
          }
        ],
        "responses": {
          "200": {
            "description": "Backup restoration status successfully returned",
            "schema": {
              "$ref": "#/definitions/BackupRestoreStatusResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Not Found - Backup does not exist",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/cluster/statistics": {
      "get": {
        "description": "Returns Raft cluster statistics of Weaviate DB.",
        "operationId": "cluster.get.statistics",
        "x-serviceIds": [
          "weaviate.cluster.statistics.get"
        ],
        "tags": [
          "cluster"
        ],
        "responses": {
          "200": {
            "description": "Cluster statistics successfully returned",
            "schema": {
              "$ref": "#/definitions/ClusterStatisticsResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid backup restoration status attempt.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/nodes": {
      "get": {
        "description": "Returns status of Weaviate DB.",
        "operationId": "nodes.get",
        "x-serviceIds": [
          "weaviate.nodes.status.get"
        ],
        "tags": [
          "nodes"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/CommonOutputVerbosityParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Nodes status successfully returned",
            "schema": {
              "$ref": "#/definitions/NodesStatusResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Not Found - Backup does not exist",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid backup restoration status attempt.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/nodes/{className}": {
      "get": {
        "description": "Returns status of Weaviate DB.",
        "operationId": "nodes.get.class",
        "x-serviceIds": [
          "weaviate.nodes.status.get.class"
        ],
        "tags": [
          "nodes"
        ],
        "parameters": [
          {
            "name": "className",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/CommonOutputVerbosityParameterQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "Nodes status successfully returned",
            "schema": {
              "$ref": "#/definitions/NodesStatusResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "Not Found - Backup does not exist",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "422": {
            "description": "Invalid backup restoration status attempt.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        }
      }
    },
    "/classifications/": {
      "post": {
        "description": "Trigger a classification based on the specified params. Classifications will run in the background, use GET /classifications/<id> to retrieve the status of your classification.",
        "operationId": "classifications.post",
        "x-serviceIds": [
          "weaviate.classifications.post"
        ],
        "parameters": [
          {
            "description": "parameters to start a classification",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/Classification"
            },
            "name": "params",
            "required": true
          }
        ],
        "responses": {
          "201": {
            "description": "Successfully started classification.",
            "schema": {
              "$ref": "#/definitions/Classification"
            }
          },
          "400": {
            "description": "Incorrect request",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "Starts a classification.",
        "tags": [
          "classifications"
        ]
      }
    },
    "/classifications/{id}": {
      "get": {
        "description": "Get status, results and metadata of a previously created classification",
        "operationId": "classifications.get",
        "x-serviceIds": [
          "weaviate.classifications.get"
        ],
        "parameters": [
          {
            "description": "classification id",
            "in": "path",
            "type": "string",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Found the classification, returned as body",
            "schema": {
              "$ref": "#/definitions/Classification"
            }
          },
          "404": {
            "description": "Not Found - Classification does not exist"
          },
          "401": {
            "description": "Unauthorized or invalid credentials."
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "An error has occurred while trying to fulfill the request. Most likely the ErrorResponse will contain more information about the error.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "summary": "View previously created classification",
        "tags": [
          "classifications"
        ]
      }
    }
  },
  "produces": [
    "application/json"
  ],
  "schemes": [
    "https"
  ],
  "security": [
    {},
    {
      "oidc": []
    }
  ],
  "securityDefinitions": {
    "oidc": {
      "type": "oauth2",
      "description": "OIDC (OpenConnect ID - based on OAuth2)",
      "flow": "implicit",
      "authorizationUrl": "http://to-be-configured-in-the-application-config"
    }
  },
  "swagger": "2.0",
  "tags": [
    {
      "name": "objects"
    },
    {
      "name": "batch",
      "description": "These operations allow to execute batch requests for Objects and Objects. Mostly used for importing large datasets."
    },
    {
      "name": "graphql"
    },
    {
      "name": "meta"
    },
    {
      "name": "P2P"
    },
    {
      "name": "contextionary-API",
      "description": "All functions related to the Contextionary."
    },
    {
      "name": "schema",
      "description": "These operations enable manipulation of the schema in Weaviate schema."
    }
  ]
}
